/**
 * @file SqlMgr.h
 * @author Lost
 * @date 七月 2018
 * @brief 
 * 数据库管理
 */

#ifndef __SQLMGR_H__
#define __SQLMGR_H__

#include "Singleton.h"

#include <string>
#include <map>
#include <vector>
#include <mysql.h>

using namespace std;

/**
 * @brief 数据库管理
 */
class CSqlMgr : public CSingleton<CSqlMgr>
{
public:
    CSqlMgr();
    ~CSqlMgr();

public:
    /**
     * @brief 初始化
     */
    bool Init(const string stUser, const string stPassword, const string stIp, const int iPort, const string stDatabase);


    /**
     * @brief 查询
     */
    bool Select(const string stTabel, vector<string> vecField, map<string, string> &mapWhere, vector<vector<string> >&vecVecResult);


    /**
     * @brief 插入
     */
    bool Insert(string stTabel, map<string, string> &mapKeyValue);

    /**
    * @brief 更新
    */
    bool Update(const string stTabel, const string stKey, const string stValue, map<string, string> &mapKeyValue);

public:
    /*!< mysql连接对象 */
    MYSQL *m_pMySql;
};

#endif // __SQLMGR_H__

